package multiplex.view;

import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import multiplex.facade.Facade;
import multiplex.model.Filme;
import multiplex.model.Promocao;

public class IFTelaRemoverPromocaoFilme extends InternalFramePrincipal{

	private final JLabel labelBuscarFilme = new JLabel("Buscar Filme");
	private JFormattedTextField TFbuscar;
	private JButton buttonBuscar;
	private JButton buttonRemover;
	private JButton buttonFechar;
	DefaultListModel listaModel;
	private JList promocoesDisponiveis;
	private Facade fachada; 
	private Container conteudo;
	
	
	
	public IFTelaRemoverPromocaoFilme() {
		super("Remover Promocao de Filme");
		// TODO Auto-generated constructor stub
		try{
		fachada = new Facade();
		
		conteudo = getContentPane();
		conteudo.setLayout(new FlowLayout(FlowLayout.CENTER));
		
		TFbuscar = new JFormattedTextField();
		TFbuscar.setPreferredSize(new Dimension(200, 30));
		TFbuscar.requestFocus();
		
		buttonBuscar = new JButton("Buscar");
		buttonRemover = new JButton("Remover");
		buttonFechar = new JButton("Fechar");
		
		this.listaModel = new DefaultListModel();
		promocoesDisponiveis = new JList(this.listaModel);
		
		conteudo.add(labelBuscarFilme);
		conteudo.add(TFbuscar);
		conteudo.add(buttonBuscar);
		conteudo.add(promocoesDisponiveis);
		conteudo.add(buttonRemover);
		conteudo.add(buttonFechar);
		
	    buttonBuscar.addActionListener(new ActionListener(){
				@Override
				public void actionPerformed(ActionEvent arg0) {
					System.out.println(TFbuscar.getText());
					listaModel.removeAllElements();
					List<Filme> filme = fachada.getFilme(TFbuscar.getText());
					for(Filme f : filme){
						listaModel.addElement(f);
					}
					promocoesDisponiveis.setModel( listaModel );
					if(filme.size()==0)JOptionPane.showMessageDialog(conteudo, "Não existem promoções cadastradas para esse filme","Erro", EXIT_ON_CLOSE);
				}
			});
	    
	    buttonRemover.addActionListener(new ActionListener(){
	    	public void actionPerformed(ActionEvent arg0){
	    	try{
	    		Filme selected = (Filme) promocoesDisponiveis.getSelectedValue();
	    		if(fachada.removePromocaoFilme(selected) == true)		
	    			JOptionPane.showMessageDialog(conteudo,"Promoção removida com sucesso" , "Sucesso", JOptionPane.INFORMATION_MESSAGE);
	    		else
	    			JOptionPane.showMessageDialog(conteudo,"Erro na exclusão da promoção" , "Erro", JOptionPane.INFORMATION_MESSAGE);
	    	}
	    	catch(Throwable e){
	    		JOptionPane.showMessageDialog(conteudo,"Erro na exclusão da promoção" , "Erro", JOptionPane.INFORMATION_MESSAGE);
	    	}
	    	}
	    });
	        
	    buttonFechar.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				IFTelaRemoverPromocaoFilme.this.setVisible(false);
			}
	    	
	    });
		
		
	} catch(Exception e){
		JOptionPane.showMessageDialog(conteudo, e.toString());
	}
	
	}
	
	public static void main(String args[]){
		
		JFrame aTela = new JFrame();
		aTela.setSize(new Dimension(800,600));
		
		IFTelaRemoverPromocaoFilme aTelaRemove = new IFTelaRemoverPromocaoFilme();
		
		aTela.add(aTelaRemove);
		aTela.setVisible(true);
		aTelaRemove.setVisible(true);
		
	}

}